{{tag>portail serveur internet BROUILLON}}

----

====== CMS (Système de Gestion de Contenu) ======

Un [[wpfr>Système_de_gestion_de_contenu|CMS]] (pour l'anglais //Content Management Systems//, parfois appelé en français SGC pour //Système de Gestion de Contenu//), est un logiciel destiné à la conception et à la mise à jour de sites web //dynamiques//.

Un [[wpfr>Page_web_dynamique|site web dynamique]] est un site dont le contenu est amené à changer, que ce soit par des mises à jour du contenu par l'administrateur ou par des paramètres tels que l'identité de l'utilisateur, la date, ou autres. On utilise ce terme par opposition à site //statique// (dont le contenu ne change pas selon la consultation).

  * Un site statique est donc la plupart du temps un assemblage de pages HTML, dont le contenu est stocké dans des fichiers HTML que le [[:web#serveurs|serveur HTTP]] rend simplement disponible.
  * Pour un site dynamique par contre, le contenu est généré par un script à chaque consultation. Plusieurs langages de programmation peuvent être employés à cet usage : [[:Python]], [[:Ruby]], JavaScript, Perl, mais le plus utilisé est [[:PHP]].

Comme les fonctionnalités des sites internet sont souvent les mêmes d'un site à l'autre (accueil, menu, pages, blog, galleries, etc.), on a mis au point des systèmes qui permettent à l'administrateur de gérer de manière simplifiée et graphique le contenu de sites dynamiques. C'est ce qu'on appelle des CMS.

===== CMS =====

<note important>Les CMS sont des applications accessibles directement en ligne, il est impératif d'utiliser les dernières versions pour des raisons de sécurité.

Certains CMS sont disponibles dans les dépôts officiels d'Ubuntu, mais avant de vous lancer dans une installation par paquet, vérifiez que la version proposée correspond à la dernière version sur le site officiel du CMS (ce qui est rarement le cas).

À l'heure de la rédaction de cette page la dernière version de WordPress est par exemple la 4.9.4.
<code>apt show wordpress</code> retourne par contre sur [[:Xenial]] le numéro de version 4.4.2 (sortie il y a 2 ans).</note>

La plupart des CMS stockent le contenu dynamique dans des bases de données ([[:MySQL]] la plupart du temps), mais d'autres prennent le parti de stocker les informations directement sous forme de fichiers texte. On appelle cette stratégie le //flat file//.

L'inconvénient avec les //CMS flat file// c'est que les recherches sur leur contenu dynamique sont généralement plus lentes, en particulier si celui-ci est important. Par contre ils sont la plupart du temps plus rapides d'une manière générale et surtout beaucoup plus simples à installer et à sauvegarder que leurs homologues à base de données.

^ Nom du CMS ^ Licence ^ Base de données ^ Langage ^ Facilité d'utilisation ^ Description |
^ [[:WordPress]] | libre  | MySQL | PHP | <box 1em round #ff0></box> | WordPress est le CMS le plus utilisé (28% des sites du [[:web|WWW]] !). Il rassemble une énorme communauté et propose un nombre sidérant de fonctionnalités par l'ajout d'extensions. Il est par contre d'une certaine manière victime de son succès : c'est une des solutions web les plus attaquées, il est donc impératif de le maintenir à jour constamment. Une fois installé il est assez simple à utiliser, mais il est un peu vieillissant et propose une ergonomie héritée du système de //blog// qu'il était à l'origine. |
^ [[:joomla|Joomla!]] | libre  | MySQL | PHP | <box 1em round #ff0></box> | Joomla! bénéficie également d'une communauté importante. Il propose plus de fonctionnalités nativement que WordPress (permissions, multilingue...), mais on trouve moins de choses dans les extensions. Il ne bénéficie pas d'une image aussi "professionnelle" que WordPress. Il est également un peu vieillissant. |
^ [[:Drupal]] | libre  | MySQL | PHP | <box 1em round #f00></box> | Drupal est le 3e CMS le plus utilisé. Il est davantage orienté vers les développeurs, ce qui le rend plus souple, mais plus compliqué à prendre en main. Il est particulièrement bien sécurisé. |
^ [[http://www.cmsmadesimple.org/|CMS Made Simple]] | libre | MySQL | PHP | <box 1em round #f80></box> | CMSMS se veut plus simple que WordPress. Son interface est effectivement plus claire, peut-être parce qu'il propose moins de fonctionnalités, mais il repose encore beaucoup sur de l'édition par code. |
^ [[:Grav]] | libre | flat file (YAML) | PHP | <box 1em round #0f0></box> | Grav est un petit nouveau. Il n'utilise pas de base de données, il est très rapide, propose une interface très claire et ergonomique, et il est basé sur des technologies actuelles. Il ne propose évidemment pas encore autant de fonctionnalités que WordPress (il dispose quand même d'un catalogue d'extensions de qualité) mais il en est une alternative beaucoup plus moderne. Le site officiel est en anglais, mais l'interface d'administration est entièrement traduite en français. |
^ [[:PluXml]] | libre | flat file (XML) | PHP | <box 1em round #0f0></box> | Outil de gestion de blog très simple, il dispose d'un catalogue d'extensions intéressant. Par contre il semble ne pas être aussi simple à maintenir à jour. |
^ [[http://nibbleblog.com/|Nibbleblog]] | libre | flat file (XML) | PHP | <box 1em round #0f0></box> | Outil de gestion de blog très simple mais pauvre en fonctionnalités. |
^ [[https://www.django-cms.org/|Django]] | libre | MySQL | Python |  |  |
^ [[:SPIP]] | libre  | MySQL | PHP | <box 1em round #f80></box> | SPIP était un des CMS les plus utilisés au début des années 2000. Il bénéficie encore d'un développement et d'une communauté relativement active. Mais il propose désormais peu de fonctionnalités et un intérêt limité par rapport à ses concurrents. |
^ [[:Plone]] | libre | ZODB | Python | <box 1em round #f00></box> | Plone fait plus que mettre en place un site Internet, et propose des fonctionnalités de gestion d'intranet. Il est basé sur [[:Zope]] et est particulièrement sécurisé. |
^ [[:PHPBoost]] | libre | MySQL | PHP |  |  |
^ [[https://www.ametys.org/territorial/fr/solutions/ametys-portail/apercu.html|Ametys]] | libre | MySQL | Java |  |  |
^ [[:Linea21]] | libre | MySQL | PHP |  |  |
^ [[:EZpublish]] | libre et commercial | MySQL | PHP |  |  |
^ [[https://lehollandaisvolant.net/blogotext/fr/?|BlogoText]] | libre | MySQL SQLite | PHP | <box 1em round #0f0></box> | BlogoText est un CMS qui peut utiliser MySQL et SQLite. C'est un moteur de blog avec la possibilité de partager des liens. |

<note tip>Pour plus de sécurité, il est recommandé de cacher le dossier admin (en le renommant, etc.) mais cela n’est pas possible dans tous les CMS, pour plus d’infos, voir la documentation du CMS choisi.</note>

===== Générateurs de sites statiques =====

Les générateurs de sites statiques se rapprochent des CMS en ce sens que leur contenu est facilement modifiable par l'administrateur.

Cependant ce contenu n'est pas généré à chaque consultation et une fois modifié il se présente sous la forme de fichiers HTML, comme un site statique.

Ils disposent de moins de fonctionnalité que les CMS, mais suffisent en général à la mise en place de sites "vitrines" ou de blogs, et bénéficient d'une sécurité infaillible et d'une vitesse incomparable.

  * [[https://www.getpelican.com/|Pelican]]
  * [[:WordPress]] avec l'extension [[http://wordpress.org/extend/plugins/really-static/|Really Static]]
  * [[http://www.cmsimple.org|CMSimple]]
  * [[https://jekyllrb.com/|Jekyll]] : il s'agit à la base d'un outil pour la création d'un site statique pour les développeurs web, mais il existe des interfaces graphiques pour l'utiliser.


===== Voir aussi =====

  * [[:hébergeur|Une liste des hébergeurs]]
<note tip>La plupart des hébergeurs web proposent des installations simplifiées ("//en 1 clic//") pour les CMS les plus courants.</note>
  * [[wpfr>Liste_de_systèmes_de_gestion_de_contenu|Liste de CMS sur Wikipédia]]
  * [[http://www.packtpub.com/award|Open Source CMS Award]]
  * [[https://framalibre.org/recherche-par-crit-res?keys=cms|Rubrique CMS de Framasoft]]

==== Pages en relation avec le sujet ====

{{backlinks>.#!utilisateurs}}

----
//Contributeurs : [[:utilisateurs:krodelabestiole]]//